/**
 * @file PreferencesDialog.cpp
 *
 * Klasa okienka ustawień programu - implementacja.
 *
 * @author Zbigniew Siciarz
 * @date 2009
 * @version 2.0.0
 * @since 2.0.0
 */

#include "PreferencesDialog.h"

#include <QSettings>

/**
 * Konstruktor okienka dialogowego ustawień.
 *
 * Tworzy GUI, a następnie przypisuje walidatory polom które wymagają
 * kontroli danych wpisywanych przez użytkownika. Na końcu wczytuje do pól
 * bieżące wartości ustawień.
 *
 * @param parent obiekt rodzica
 */
PreferencesDialog::PreferencesDialog(QWidget *parent)
    : QDialog(parent)
{
	ui.setupUi(this);

	readSettings();
}

/**
 * Odczytuje ustawienia aplikacji.
 */
void PreferencesDialog::readSettings()
{
    QSettings settings;

    ui.editUserName->setText(settings.value("user/userName").toString());
    ui.editPtogzCode->setText(settings.value("user/ptogzCode").toString());
    ui.editAavsoCode->setText(settings.value("user/aavsoCode").toString());

    ui.cbxCanDownloadFromGcvs->setChecked(settings.value(
            "network/canDownloadFromGcvs", true).toBool());
    ui.cbxAavsoRss->setChecked(settings.value(
            "network/enableAavsoRss", true).toBool());
    ui.editGcvsUrl->setText(settings.value("network/gcvsUrl").toString());
    ui.editAavsoQuickLookUrl->setText(settings.value(
            "network/aavsoQuickLookUrl").toString());
    ui.editAavsoFeedUrl->setText(settings.value("network/aavsoFeedUrl",
            "http://aavso.org/feed.xml").toString());
}

/**
 * Zapisuje ustawienia aplikacji.
 */
void PreferencesDialog::saveSettings()
{
    QSettings settings;
    settings.setValue("user/userName", ui.editUserName->text());
    settings.setValue("user/ptogzCode", ui.editPtogzCode->text());
    settings.setValue("user/aavsoCode", ui.editAavsoCode->text());

    settings.setValue("network/canDownloadFromGcvs",
            ui.cbxCanDownloadFromGcvs->isChecked());
    settings.setValue("network/enableAavsoRss", ui.cbxAavsoRss->isChecked());
    settings.setValue("network/gcvsUrl", ui.editGcvsUrl->text());
    settings.setValue("network/aavsoQuickLookUrl", ui.editAavsoQuickLookUrl->text());
    settings.setValue("network/aavsoFeedUrl", ui.editAavsoFeedUrl->text());
}
